#pragma once

#include "global.h"

enum opcodes
{
	MSG_PARTIAL_TIMESTAMP = 0x27,
	MSG_FULL_TIMESTAMP,
	MSG_NEED_TIMESTAMP,
	MSG_SIMULATED_TIMESTAMP,
	MSG_USE_MAP,
	MSG_JOIN_DATA,
	MSG_NEW_PLAYER,
	MSG_PLAYER_QUIT,
	MSG_SIMPLE_OBJ,
	MSG_COMPLEX_OBJ,
	MSG_DESTROY_OBJECT,
	MSG_OBJECT_OUT_OF_SIGHT,
	MSG_OBJECT_IN_SHADOWS,
	MSG_OBJECT_FRIEND_ADD,
	MSG_OBJECT_FRIEND_REMOVE,
	MSG_RESET_FRIENDS,
	MSG_ENABLE_OBJECT,
	MSG_DISABLE_OBJECT,
	MSG_DRAW_FRAME,
	MSG_DESTROY_WALL,
	MSG_OPEN_WALL,
	MSG_CLOSE_WALL,
	MSG_CHANGE_OR_ADD_WALL_MAGIC,
	MSG_REMOVE_WALL_MAGIC,
	MSG_PLAYER_INPUT,
	MSG_PLAYER_SET_WAYPOINT,
	MSG_REPORT_HEALTH,
	MSG_REPORT_HEALTH_DELTA,
	MSG_REPORT_PLAYER_HEALTH,
	MSG_REPORT_ITEM_HEALTH,
	MSG_REPORT_MANA,
	MSG_REPORT_POISON,
	MSG_REPORT_STAMINA,
	MSG_REPORT_STATS,
	MSG_REPORT_ARMOR_VALUE,
	MSG_REPORT_GOLD,
	MSG_REPORT_PICKUP,
	MSG_REPORT_MODIFIABLE_PICKUP,
	MSG_REPORT_DROP,
	MSG_REPORT_LESSON,
	MSG_REPORT_MUNDANE_ARMOR_EQUIP,
	MSG_REPORT_MUNDANE_WEAPON_EQUIP,
	MSG_REPORT_MODIFIABLE_WEAPON_EQUIP,
	MSG_REPORT_MODIFIABLE_ARMOR_EQUIP,
	MSG_REPORT_ARMOR_DEQUIP,
	MSG_REPORT_WEAPON_DEQUIP,
	MSG_REPORT_TREASURE_COUNT,
	MSG_REPORT_FLAG_BALL_WINNER,
	MSG_REPORT_FLAG_WINNER,
	MSG_REPORT_DEATHMATCH_WINNER,
	MSG_REPORT_DEATHMATCH_TEAM_WINNER,
	MSG_REPORT_ENCHANTMENT,
	MSG_REPORT_ITEM_ENCHANTMENT,
	MSG_REPORT_LIGHT_COLOR,
	MSG_REPORT_LIGHT_INTENSITY,
	MSG_REPORT_Z_PLUS,
	MSG_REPORT_Z_MINUS,
	MSG_REPORT_EQUIP,
	MSG_REPORT_DEQUIP,
	MSG_REPORT_ACQUIRE_SPELL,
	MSG_REPORT_TARGET,
	MSG_REPORT_CHARGES,
	MSG_REPORT_X_STATUS,
	MSG_REPORT_PLAYER_STATUS,
	MSG_REPORT_MODIFIER,
	MSG_REPORT_STAT_MODIFIER,
	MSG_REPORT_NPC,
	MSG_REPORT_CLIENT_STATUS,
	MSG_REPORT_ANIMATION_FRAME,
	MSG_REPORT_ACQUIRE_CREATURE,
	MSG_REPORT_LOSE_CREATURE,
	MSG_REPORT_EXPERIENCE,
	MSG_REPORT_SPELL_AWARD,
	MSG_REPORT_SPELL_START,
	MSG_REPORT_INVENTORY_LOADED,
	MSG_TRY_DROP,
	MSG_TRY_GET,
	MSG_TRY_USE,
	MSG_TRY_EQUIP,
	MSG_TRY_DEQUIP,
	MSG_TRY_TARGET,
	MSG_TRY_CREATURE_COMMAND,
	MSG_TRY_SPELL,
	MSG_TRY_ABILITY,
	MSG_TRY_COLLIDE,
	MSG_FX_PARTICLEFX,
	MSG_FX_PLASMA,
	MSG_FX_SUMMON,
	MSG_FX_SUMMON_CANCEL,
	MSG_FX_SHIELD,
	MSG_FX_BLUE_SPARKS,
	MSG_FX_YELLOW_SPARKS,
	MSG_FX_CYAN_SPARKS,
	MSG_FX_VIOLET_SPARKS,
	MSG_FX_EXPLOSION,
	MSG_FX_LESSER_EXPLOSION,
	MSG_FX_COUNTERSPELL_EXPLOSION,
	MSG_FX_THIN_EXPLOSION,
	MSG_FX_TELEPORT,
	MSG_FX_SMOKE_BLAST,
	MSG_FX_DAMAGE_POOF,
	MSG_FX_LIGHTNING,
	MSG_FX_ENERGY_BOLT,
	MSG_FX_CHAIN_LIGHTNING_BOLT,
	MSG_FX_DRAIN_MANA,
	MSG_FX_CHARM,
	MSG_FX_GREATER_HEAL,
	MSG_FX_MAGIC,
	MSG_FX_SPARK_EXPLOSION,
	MSG_FX_DEATH_RAY,
	MSG_FX_SENTRY_RAY,
	MSG_FX_RICOCHET,
	MSG_FX_JIGGLE,
	MSG_FX_GREEN_BOLT,
	MSG_FX_GREEN_EXPLOSION,
	MSG_FX_WHITE_FLASH,
	MSG_FX_GENERATING_MAP,
	MSG_FX_ASSEMBLING_MAP,
	MSG_FX_POPULATING_MAP,
	MSG_FX_DURATION_SPELL,
	MSG_FX_DELTAZ_SPELL_START,
	MSG_FX_TURN_UNDEAD,
	MSG_FX_ARROW_TRAP,
	MSG_FX_VAMPIRISM,
	MSG_FX_MANA_BOMB_CANCEL,
	MSG_UPDATE_STREAM,
	MSG_NEW_ALIAS,
	MSG_AUDIO_EVENT,
	MSG_AUDIO_PLAYER_EVENT,
	MSG_TEXT_MESSAGE,
	MSG_INFORM,
	MSG_IMPORTANT,
	MSG_IMPORTANT_ACK,
	MSG_MOUSE,
	MSG_INCOMING_CLIENT,
	MSG_OUTGOING_CLIENT,
	MSG_GAME_SETTINGS,
	MSG_GAME_SETTINGS_2,
	MSG_UPDATE_GUI_GAME_SETTINGS,
	MSG_DOOR_ANGLE,
	MSG_OBELISK_CHARGE,
	MSG_PENTAGRAM_ACTIVATE,
	MSG_CLIENT_PREDICT_LINEAR,
	MSG_REQUEST_MAP,
	MSG_CANCEL_MAP,
	MSG_MAP_SEND_START,
	MSG_MAP_SEND_PACKET,
	MSG_MAP_SEND_ABORT,
	MSG_SERVER_CMD,
	MSG_SYSOP_PW,
	MSG_SYSOP_RESULT,
	MSG_KEEP_ALIVE,
	MSG_RECEIVED_MAP,
	MSG_CLIENT_READY,
	MSG_REQUEST_SAVE_PLAYER,
	MSG_XFER_MSG,
	MSG_PLAYER_OBJ,
	MSG_TEAM_MSG,
	MSG_KICK_NOTIFICATION,
	MSG_TIMEOUT_NOTIFICATION,
	MSG_SERVER_QUIT,
	MSG_SERVER_QUIT_ACK,
	MSG_TRADE,
	MSG_CHAT_KILL,
	MSG_MESSAGES_KILL,
	MSG_SEQ_IMPORTANT,
	MSG_REPORT_ABILITY_AWARD,
	MSG_REPORT_ABILITY_STATE,
	MSG_REPORT_ACTIVE_ABILITIES,
	MSG_DIALOG,
	MSG_REPORT_GUIDE_AWARD,
	MSG_INTERESTING_ID,
	MSG_TIMER_STATUS,
	MSG_REQUEST_TIMER_STATUS,
	MSG_JOURNAL_MSG,
	MSG_CHAPTER_END,
	MSG_REPORT_ALL_LATENCY,
	MSG_REPORT_FLAG_STATUS,
	MSG_REPORT_BALL_STATUS,
	MSG_REPORT_OBJECT_POISON,
	MSG_REPORT_MONITOR_CREATURE,
	MSG_REPORT_UNMONITOR_CREATURE,
	MSG_REPORT_TOTAL_HEALTH,
	MSG_REPORT_TOTAL_MANA,
	MSG_REPORT_SPELL_STAT,
	MSG_REPORT_SECONDARY_WEAPON,
	MSG_REPORT_LAST_QUIVER,
	MSG_INFO_BOOK_DATA,
	MSG_SOCIAL,
	MSG_FADE_BEGIN,
	MSG_MUSIC_EVENT,
	MSG_MUSIC_PUSH_EVENT,
	MSG_MUSIC_POP_EVENT,
	MSG_PLAYER_DIED,
	MSG_PLAYER_RESPAWN,
	MSG_FORGET_DRAWABLES,
	MSG_RESET_ABILITIES,
	MSG_RATE_CHANGE,
	MSG_REPORT_CREATURE_CMD,
	MSG_VOTE,
	MSG_STAT_MULTIPLIERS,
	MSG_GAUNTLET,
	MSG_INVENTORY_FAIL
};

//if you add new opcode .. Do NOT forget to change the following define MAX_OPCODE_ID and also add new opcode to table in opcodes.cpp
#define MAX_OPCODE_ID 0xF1